package pacBiopackage;

import java.util.HashMap;

public class PacBioErrorStatisticsContainer {
	
	//#insertions
	//#deletions
	//#mismatch
	//#type of mismatch
	//positions
	
	private HashMap<Integer,Integer> positionsErrors = null;
	private HashMap<Integer,Integer> positionsErrors2 = null;
	private HashMap<String, Integer> errors = null;
	private HashMap<String,Integer> insertFreq = null;
	private HashMap<String,HashMap<String, Integer> > mismatchErrorType = null;
	private HashMap<String,Integer>InsertEnviourment =null;
	private HashMap<String,Integer>DeletionEnviourment =null;
	private HashMap<String,Integer>SNPEnviourment =null;
	
	public PacBioErrorStatisticsContainer() 
	{
		init();
	}
	

	public HashMap<Integer, Integer> getPositionsErrors2() {
		return positionsErrors2;
	}


	public void setPositionsErrors2(HashMap<Integer, Integer> positionsErrors2) {
		this.positionsErrors2 = positionsErrors2;
	}


	public HashMap<String, Integer> getInsertEnviourment() {
		return InsertEnviourment;
	}


	public void setInsertEnviourment(HashMap<String, Integer> insertEnviourment) {
		InsertEnviourment = insertEnviourment;
	}


	public HashMap<String, Integer> getDeletionEnviourment() {
		return DeletionEnviourment;
	}


	public void setDeletionEnviourment(HashMap<String, Integer> deletionEnviourment) {
		DeletionEnviourment = deletionEnviourment;
	}


	public HashMap<String, Integer> getSNPEnviourment() {
		return SNPEnviourment;
	}


	public void setSNPEnviourment(HashMap<String, Integer> sNPEnviourment) {
		SNPEnviourment = sNPEnviourment;
	}


	public HashMap<Integer, Integer> getPositionsErrors() {
		return positionsErrors;
	}

	public void setPositionsErrors(HashMap<Integer, Integer> positionsErrors) {
		this.positionsErrors = positionsErrors;
	}

	public HashMap<String, Integer> getErrors() {
		return errors;
	}

	public void setErrors(HashMap<String, Integer> errors) {
		this.errors = errors;
	}

	public HashMap<String, Integer> getInsertFreq() {
		return insertFreq;
	}

	public void setInsertFreq(HashMap<String, Integer> insertFreq) {
		this.insertFreq = insertFreq;
	}

	public HashMap<String, HashMap<String, Integer>> getMismatchErrorType() {
		return mismatchErrorType;
	}

	public void setMismatchErrorType(
			HashMap<String, HashMap<String, Integer>> mismatchErrorType) {
		this.mismatchErrorType = mismatchErrorType;
	}

	private void init()
	{
		positionsErrors = new HashMap<Integer, Integer>()
		{
	
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;
			
			{
				for(int i=-10; i < 5000;++i)
				{
					put(i,0);	
				}
			}
			
		};
		positionsErrors2 = new HashMap<Integer, Integer>()
		{
	
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;
			
			{
				for(int i=-10; i < 5000;++i)
				{
					put(i,0);	
				}
			}
			
		};
		
		this.InsertEnviourment = new HashMap<String, Integer>();
		this.DeletionEnviourment = new HashMap<String, Integer>();
		this.SNPEnviourment = new HashMap<String, Integer>();
		
		errors = new HashMap<String, Integer>()
		{
			
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;
	
			{
				put("ins",0);
				put("del",0);
				put("mis",0);
			}
		};
	
		insertFreq = new HashMap<String,Integer>()
		{
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;
	
			{
				put("C",0);
				put("T",0);
				put("A",0);
				put("G",0);
				
			}
		};
	
	
	
		mismatchErrorType = new HashMap<String, HashMap<String,Integer>>()
		{
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;
	
			{
				put("C", new HashMap<String, Integer>());
				get("C").put("A",0);
				get("C").put("G",0);
				get("C").put("T",0);
				get("C").put("-",0);
				put("T", new HashMap<String, Integer>());
				get("T").put("A",0);
				get("T").put("G",0);
				get("T").put("C",0);
				get("T").put("-",0);
				put("A", new HashMap<String, Integer>());
				get("A").put("C",0);
				get("A").put("G",0);
				get("A").put("T",0);
				get("A").put("-",0);
				put("G", new HashMap<String, Integer>());
				get("G").put("C",0);
				get("G").put("A",0);
				get("G").put("T",0);
				get("G").put("-",0);
				put("-", new HashMap<String, Integer>());
				get("-").put("C",0);
				get("-").put("A",0);
				get("-").put("T",0);
				get("-").put("G",0);
			}
		};
	}
}
